home *** CD-ROM | disk | FTP | other *** search
- ;V2 Depack routine for JAM Packer V2.X/3.0/4.0
-
- DEPACK:
- ADDA.L #$4,A0 ;ALLOW FOR HEADER
- MOVE.W #$FE,D7
- MOVE.L A0,A6
- MOVE.L (A0)+,D5
- ADDA.L D5,A1
- ADDA.L (A0),A0
- SUBA.L #4,A0
- TST.W -(A0)
- BPL.S SKIP
- SUBQ.L #1,A0
- SKIP MOVE.B -(A0),D0
-
- TOP ROL.W D7
- MOVE.W D7,$FFFF8240.W
- LSL.B #1,D0
- BNE.S NOTE
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- NOTE BCC.S SHEP
- CLR.W D1
- LSL.B #1,D0
- BNE.S KLF
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- KLF BCC.S PET
- LEA TABL1(PC),A3
- MOVEQ #3,D3
- STE CLR.W D1
- MOVE.B 0(A3,D3.W),D2
- EXT.W D2
- MOVEQ #-1,D4
- LSL.W D2,D4
- NOT.W D4
- SUBQ.W #1,D2
- ARJ LSL.B #1,D0
- BNE.S BOYS
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- BOYS ROXL.W #1,D1
- DBF D2,ARJ
- TST.W D3
- BEQ.S SHOP
- CMP.W D1,D4
- DBNE D3,STE
- SHOP MOVE.B 4(A3,D3.W),D2
- EXT.W D2
- ADD.W D2,D1
- PET MOVE.B -(A0),-(A1)
- DBF D1,PET
- SHEP MOVE.L A6,A3
- ADDQ.L #$8,A3
- CMPA.L A3,A0
- BLE EXIT
- LEA TABL2(PC),A3
- MOVEQ #3,D2
- CATHY LSL.B #1,D0
- BNE.S ALSA
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- ALSA BCC.S FDC
- DBF D2,CATHY
- FDC CLR.W D1
- ADDQ.W #1,D2
- MOVE.B 0(A3,D2.W),D3
- BEQ.S VAN
- EXT.W D3
- SUBQ.W #1,D3
- DE LSL.B #1,D0
- BNE.S VEN
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- VEN ROXL.W #1,D1
- DBF D3,DE
- VAN MOVE.B 5(A3,D2.W),D3
- EXT.W D3
- ADD.W D3,D1
- CMPI.W #2,D1
- BEQ.S MFD
- LEA TABL3(PC),A3
- MOVEQ #1,D3
- LUC LSL.B #1,D0
- BNE.S CML
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- CML BCC.S BBS
- DBF D3,LUC
- BBS ADDQ.W #1,D3
- CLR.W D2
- MOVE.B 0(A3,D3.W),D4
- EXT.W D4
- MCH LSL.B #1,D0
- BNE.S SAW
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- SAW ROXL.W #1,D2
- DBF D4,MCH
- LSL.W #1,D3
- ADD.W 4(A3,D3.W),D2
- BRA.S CPUN
- MFD CLR.W D2
- MOVEQ #5,D3
- CLR.W D4
- LSL.B #1,D0
- BNE.S EMF
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- EMF BCC.S CLR1
- MOVEQ #8,D3
- MOVEQ #$40,D4
- CLR1 LSL.B #1,D0
- BNE.S NOTZ
- MOVE.B -(A0),D0
- ROXL.B #1,D0
- NOTZ ROXL.W #1,D2
- DBF D3,CLR1
- ADD.W D4,D2
- CPUN LEA 0(A1,D2.W),A2
- EXT.L D1
- ADDA.L D1,A2
- SUBQ.W #1,D1
- WRTLP MOVE.B -(A2),-(A1)
- DBF D1,WRTLP
- BRA TOP
- EXIT RTS
- TABL1 DC.B $0A,$03,$02,$02,$0E,$07,$04,$01
- TABL2 DC.B $0A,$02,$01,$00,$00,$0A,$06,$04,$03,$02
- TABL3 DC.B $0B,$04,$07,$00,$01,$20,$00,$00
- DC.B $00,$20
-